package com.deyuanyun.pic.settings.service.pipe;

import com.deyuanyun.pic.common.dto.DTOResult;
import com.deyuanyun.pic.settings.controller.dto.PipeSegmentDTO;
import com.deyuanyun.pic.settings.controller.dto.PipeSegmentInfraVO;
import com.deyuanyun.pic.settings.controller.dto.PipeValidateVO;
import com.deyuanyun.pic.settings.domain.pipe.PipeSegment;
import com.github.pagehelper.Page;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface PipeSegmentService {

	/**
	 *
	 * @创建者:严祥
	 * @创建时间：2015年8月18日
	 * @方法说明:根据管线ID查询到该管线所属的所有管段信息
	 * @参数:@param pipeLineId:管线ID
	 * @return:DTOResult
	 *
	 */
	public DTOResult getPipeSegmentByPipeLineId(String pipeLineId);

	List<PipeSegment> getSegmentByLineId(String lineId);

	/**
	 * 新增管段，并设置起始位置，终止位置
	 * @param pipeSegmentInfra
	 * @return 
	 * @throws
	 * @author axiao(xj08.dream@gmail.com)
	 * @date 2016-09-05
	 */
	void insert(PipeSegmentInfraVO pipeSegmentInfra);

	/**
	 * 管道条件查询
	 * @param
	 * @return
	 * @throws
	 * @author axiao(xj08.dream@gmail.com)
	 * @date 2016-09-02
	 */
	List<PipeSegmentDTO> findByCondition(PipeSegmentInfraVO pipeSegmentInfra);

	/**
	 * 验证管段的名字或者代号是否重复
	 * @param pipeValidateVO
	 * @return
	 * @author axiao(xj08.dream@gmail.com)
	 * @date 2016-11-25
	 */
	public boolean validateRepBySegment(PipeValidateVO pipeValidateVO);

    /**
     * 删除未发布的管段信息
     * @param ids
     * @return
     * @throws
     * @author axiao(xj08.dream@gmail.com)
     * @date 2016-09-02
     */
	public int deleteSegmentById(String[] ids);


    /**
     * 根据管道id发布管道信息
     * @param ids
     * @return
     * @throws
     * @author axiao(xj08.dream@gmail.com)
     * @date 2016-09-02
     */
	public int updateStatus(String[] ids);

    /**
     * 管段数据的批量启用、停用
     * @param ids
     * @param status 0为启用状态：1不启用
     * @return
     * @author axiao(xj08.dream@gmail.com)
     * @date 2016-09-01
     */
	public int updateSegmentS(String[] ids, String status);

	/**
	* @Description: 管段初始化：根据id修改数据
	* @author h.x.rong
	* @date 2016年1月5日
	* @param 
	* @return void 
	*
	 */
	public void updatePipeSegment(PipeSegmentInfraVO pipeSegmentInfraVO);

	List<PipeSegment> getAllSegment(Map map);
	
	List<Map> querySegmentListByLineId(String LineId);
	
	/**
	 * 根据管道编号和管段名称模糊查询
	 * 
	 * @param pipeLineId
	 * @param pipeSegmentName
	 * @return
	 */
	List<PipeSegment> queryPipeSegment(String pipeLineId,String pipeSegmentName);
}
